1. Field of the Invention
The present invention relates to a packet fluctuation absorbing method and apparatus that is provided to absorb time-related fluctuations of packets at each node due to delays in the network.
2. Description of the Related Art
Generally, circuit switching was designed to provide an efficient and high-quality facility for voice traffic, and packet switching was designed to provide a more efficient facility than circuit switching for bursty data traffic. The packet switching technique is often taken as being unsuitable for voice or video data that require the continuous transmission. When packets of voice or video data are continuously transmitted across a network from node to node, the incoming packets are normally queued to each node by the first-in first-out (FIFO) scheme, and time-related fluctuations of the packets are liable to occur due to delays in the network. For this reason, it is necessary that the receiving node absorb the packet fluctuations and recover the original data from the received packets as the continuous data.
The absorption of packet fluctuations is carried out by including a fluctuation absorbing buffer in a communication system. In a continuous communication, if the data transmission starts, the reproduction of data is subsequently performed at intervals of a given time. It is important to determine when the reproduction is to be started after the first packet reaches the fluctuation absorbing buffer. In addition, it is important to determine how to control the fluctuation absorbing buffer when the overflow or the underflow of the buffer takes place.
In a conventional method of absorption of packet fluctuations using the fluctuation absorbing buffer, when the amount of packets in the buffer exceeds the upper limit (or the overflow), some of the received packets are discarded. The sequence of the data reproduction of the receiving node must be rearranged for the discarded packets. According to the conventional method, in a case of the underflow in which the amount of packets in the buffer is less than the lower limit, a dummy packet (an invalid packet or a previously received packet) is inserted to the received packets so as to suitably control the timing of the data reproduction, and the data reproduction of the receiving node is performed. In a case of the overflow of the buffer, the older ones of the received packets of the buffer are discarded and the newer ones are retained in the buffer so as to suitably control the timing of the data reproduction, and the data reproduction of the receiving node is performed.
FIG. 1 shows a conventional packet fluctuation absorbing apparatus that uses a fluctuation absorbing buffer (FIFO).
As shown in FIG. 1, in the conventional packet fluctuation absorbing apparatus, a packet input unit 10 receives packets from a preceding node (not shown) of the network or the source (not shown), and sends the received packets to a fluctuation absorbing buffer (FIFO) 12. The packet input unit 10 informs an input packet amount monitoring unit (IPAM) 14 of the number of the incoming packets to the buffer 12. The number of the incoming packets will be called the IP number.
When the information from the packet input unit 10 is received, the IPAM 14 retrieves the number of packets retained in the buffer 12 (which will be called the RP number) from the buffer 12. The IPAM 14 informs an input packet state determining unit (IPSD) 16 of both the IP number and the RP number.
When the information from the IPAM 14 is received, the IPSD 16 determines whether the overflow of the buffer 12 takes place as a result of the inputting of the received packets to the buffer 12, based on the IP number and the RP number. Namely, it is determined whether a sum of the previously retained packets (the RP number) and the incoming packets (the IP number) is above the upper limit of the buffer 12. When the overflow does not take place, the IPSD 16 initiates an input buffer processing unit (IBP) 18. When the overflow takes place, the IPSD 16 initiates an overflow processing unit (OFP) 20.
The IBP 18 writes the incoming packets to the buffer 12 so that the buffer 12 stores the incoming packets in addition to the previously retained packets. The OFP 20 informs a packet discarding unit (PDU) 22 of the number of packets being discarded (which will be called the DP number) by taking account of the excess of the sum of the previously retained packets and the incoming packets over the upper limit of the buffer 12.
When the information from the OFP 20 is received, the PDU 22 discards the excessive packets in the packets on the input side of the buffer 12 by the DP number.
In the conventional apparatus of FIG. 1, a packet output unit 24 reads the outgoing packets from the buffer 12 at intervals of a given time and sends the outgoing packets to a following node (not shown) of the network. The packet output unit 24 informs an output packet amount monitoring unit (OPAM) 26 of the number of the outgoing packets (which will be called the OP number) from the buffer 12.
When the information from the packet output unit 24 is received, the OPAM 26 retrieves the number of packets retained in the buffer 12 (the RP number) from the buffer 12. The OPAM 26 informs an output buffer state determining unit (OBSD) 28 of both the OP number and the RP number.
When the information from the OPAM 26 is received, the OBSD 28 determines whether the underflow of the buffer 12 takes place as a result of the outputting of the outgoing packets from the buffer 12, based on the OP number and the RP number. Namely, it is determined whether a difference between the previously retained packets (the RP number) and the outgoing packets (the OP number) is below the lower limit of the buffer 12. When the underflow does not take place, the OBSD 28 initiates an output buffer processing unit (OBP) 30. When the underflow takes place, the OBSD 28 initiates an underflow processing unit (UFP) 32.
The OBP 30 reads out the outgoing packets from the buffer 12 and passes the outgoing packets on to the packet output unit 24. The OBP 30 causes the PDU 22 to discard the outgoing packets in the packets on the output side of the buffer 12. On the other hand, the UFP 32 inhibits the PDU 22 from discarding the outgoing packets in the packets on the output side of the buffer 12.
In the conventional method described above, when the underflow of the fluctuation absorbing buffer is caused by delays in the network, dummy packets are inserted to the received packets so as to suitably control the timing of the data reproduction. If the dummy packets that continuously follow after the occurrence of the underflow are inserted, the timing of the data reproduction is significantly shifted from the original reproduction timing, and the difference between the incoming packets and the outgoing packets at the receiving node will be increased. In a case of voice communications, the conventional method is liable to deterioration of the quality of the reproduced voice at the receiver, which will cause the difficulty in hearing the reproduced voice at the receiver.
When the overflow of the fluctuation absorbing buffer is caused, the older ones of the received packets within the buffer are discarded and the newer ones are retained in the buffer so as to suitably control the timing of the data reproduction. The discarded packets are no longer recovered. In a case of voice communications, the conventional method is liable to deterioration of the quality of the reproduced voice at the receiver.